<template>
    <div class="photoinfo-container">
        <h3>{{ photoinfo.title }}</h3>
        <p class="subtitle">
            <span>发表时间：{{ photoinfo.add_time | dateFormat }}</span>
            <span>点击：{{ photoinfo.click }}次</span>
        </p>
        
        <hr>

        <!-- 缩略图的区域 -->
        <!-- click 事件为 vue-preivew 封装好的缩略图点击方法-->
        <div class="thumbs">
          <img class="preview-img" v-for="(item, index) in list" :src="item.src" height="100" @click="$preview.open(index, list)" :key="item.src">
        </div>

        <!-- 图片内容区域 -->
        <div class="content" v-html="photoinfo.content"></div>

        <!-- 放置一个现成的 评论子组件 -->
        <cmt-box :id="this.id"></cmt-box> 
    </div>
</template>

<script>
// 1. 导入评论子组件
import comment from '../subcomponents/comment.vue'
export default {
    data() {
       return {
           id:this.$route.params.id, // 从路由中获取到的 图片Id
           photoinfo:{}, // 图片详情
           list: [] // 缩略图的数组
       };
    },
    created() {
        this.getPhotoInfo();
        this.getThumbs();
    },
    methods: {
       getPhotoInfo() {
          // 获取图片的详情
          this.$http.get("api/getimageInfo/" + this.id).then(result => {
              if(result.body.status === 0) {
                  this.photoinfo = result.body.message[0];
              }
          })
       },
       getThumbs() {
           // 获取缩略图
           this.$http.get("api/getthumimages/" + this.id).then(result => {
               if(result.body.status === 0) {
                   // 循环每个图片数据，补全图片的宽和高
                   result.body.message.forEach(item => {
                      item.w = 600;
                      item.h = 400;
                  });
                  // 把完整的数据保存到 list 中
                  this.list = result.body.message;
              }
           })
       }
    },
    components: { 
        // 注册评论子组件
        'cmt-box': comment
    }    
}
</script>

<style lang="scss" scoped>
.photoinfo-container {
    padding: 3px;
    h3 {
        color:#26A2FF;
        font-size: 15px;
        text-align: center;
        margin:15px 0; // 上下间距15px,左右间距0
    }
    .subtitle {
        display: flex; // 实现了弹性盒模型布局，从而让 元素左右贴边；
        justify-content: space-between; // 实现了弹性盒模型布局，从而让 元素左右贴边；
        font-size: 13px;
    }

    .content {
        font-size: 13px;
        line-height: 30px;
    }

    .thumbs {
        img {
            margin: 10px;
            box-shadow: 0 0 8px #999;
        }
    }
}
</style>